// pages/goods/detail/index.js
import {reqGoodsInfo} from "../../../apis/goods"
import {reqAddCart,reqCartList} from "@/apis/cart"
import {detailBehavior} from "../../../behavior/detailBehaviors"
Page({
  behaviors:[detailBehavior],
  // 页面的初始数据
  data: {
	goodsInfo: {}, // 商品详情
    show: false, // 控制加入购物车和立即购买弹框的显示
    count: 1, // 商品购买数量，默认是 1
    blessing: '', // 祝福语
    buyNow: '' ,// 是否立即购买
    allCount: '' // 购物车商品总数量
   
  },

 // 获取商品的详情
  async getGoodsInfo() {
     // 调用接口、传入参数、获取商品详情
     const { data: goodsInfo } = await reqGoodsInfo(this.goodsId)
 
     // 将商品详情数据赋值给 data 中的变量
     this.setData({
       goodsInfo
     })
   },


// 预览商品图片
previewImg() {
  // 调用预览图片的 API
  wx.previewImage({
    urls: this.data.goodsInfo.detailList
  })
},
 
  // 加入购物车
  handleAddcart() {
    this.setData({
      show: true,
      buyNow:0
    })
  },

  // 立即购买
  handeGotoBuy() {
    this.setData({
      show: true,
      buyNow:1
    })
  },

  // 点击关闭弹框时触发的回调
  onClose() {
    this.setData({ show: false })
  },

  // 监听是否更改了购买数量
  onChangeGoodsCount(event) {
    // console.log(event.detail)
     // 将最新的购买数量同步到 data
    this.setData({
      count:Number(event.detail)
    })
  },
  //弹框确定按钮
async handleSubmit(){
    const {blessing,token,buyNow,count}=this.data
    const goodsId=this.goodsId
    //判断是否登录，没登录跳转到登录页面
    if(!token){
      wx.navigateTo({
        url: '/pages/login/login',
      })
      return
    }
  // 加入购物车
  if(buyNow ===0){
      const res =await reqAddCart({goodsId,count,blessing})
      // console.log(res);
      if (res.code === 200) {
        
        wx.showToast({
          title: '加入购物车成功'
        })
         //调用商品购物车数量函数
       this.getCartCount()
        this.setData({
          show: false
        })
          
      }
  }else{
     // 立即购买
     wx.navigateTo({
      url: `/modules/orderModule/pages/order/detail/detail?goodsId=${goodsId}&blessing=${blessing}`
    })
  }
  },
//获取商品购物车数量
async getCartCount(){
    // 如果没有 token ，说明用户是第一次访问小程序，没有进行登录过
    if (!this.data.token) return
    const res=await reqCartList()
    //遍历出商品购物车数量
    if(res.data.length !==0 ) {
     let allCount = 0
     // 获取购物车商品数量
     res.data.forEach((item) => {
       allCount += item.count
     })
       // 将购物车购买数量赋值
    this.setData({
        // Info展示的数据要求是字符串
        allCount: (allCount > 99 ? '99+' : allCount) + ''
      })
       }
    
},
  onLoad(options){
    // console.log(options.goodsId);
    //获取商品列表传递id
    this.goodsId = options.goodsId || '';
    //调用商品详情函数
     this.getGoodsInfo()
     //调用商品购物车数量函数
     this.getCartCount()
},
// 转发功能
onShareAppMessage() {
},

// 转发到朋友圈功能
onShareTimeline() {}

})
